package com.ruoyi.my.service.impl;

import java.util.List;

import com.alibaba.nacos.common.utils.MD5Utils;
import org.bouncycastle.jcajce.provider.digest.MD5;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.my.mapper.CfUserMapper;
import com.ruoyi.my.domain.CfUser;
import com.ruoyi.my.service.ICfUserService;
import org.springframework.util.DigestUtils;

/**
 * 用户列表Service业务层处理
 * 
 * @author shenshen
 * @date 2024-06-04
 */
@Service
public class CfUserServiceImpl implements ICfUserService 
{
    @Autowired
    private CfUserMapper cfUserMapper;

    /**
     * 查询用户列表
     * 
     * @param id 用户列表主键
     * @return 用户列表
     */
    @Override
    public CfUser selectCfUserById(Long id)
    {
        return cfUserMapper.selectCfUserById(id);
    }

    /**
     * 查询用户列表列表
     * 
     * @param cfUser 用户列表
     * @return 用户列表
     */
    @Override
    public List<CfUser> selectCfUserList(CfUser cfUser)
    {
        return cfUserMapper.selectCfUserList(cfUser);
    }

    /**
     * 新增用户列表
     * 
     * @param cfUser 用户列表
     * @return 结果
     */
    @Override
    public int insertCfUser(CfUser cfUser)
    {
        return cfUserMapper.insertCfUser(cfUser);
    }

    /**
     * 修改用户列表
     * 
     * @param cfUser 用户列表
     * @return 结果
     */
    @Override
    public int updateCfUser(CfUser cfUser)
    {
        return cfUserMapper.updateCfUser(cfUser);
    }

    /**
     * 批量删除用户列表
     * 
     * @param ids 需要删除的用户列表主键
     * @return 结果
     */
    @Override
    public int deleteCfUserByIds(Long[] ids)
    {
        return cfUserMapper.deleteCfUserByIds(ids);
    }

    /**
     * 删除用户列表信息
     * 
     * @param id 用户列表主键
     * @return 结果
     */
    @Override
    public int deleteCfUserById(Long id)
    {
        return cfUserMapper.deleteCfUserById(id);
    }

    @Override
    public CfUser login(String username, String password) {
        // 登录 --
        // 先根据username来查询，如果查询不到，则用户名不存在
        CfUser user = cfUserMapper.selectByUsername(username);

        if(user==null){
            return null;
        }
//        System.out.println(user);
        // 如果查询到，则比较密码，如果密码不对，则密码错误
        password = DigestUtils.md5DigestAsHex(password.getBytes());
//        System.out.println(password);
        if(!password.equalsIgnoreCase(user.getPassword())){
            return new CfUser();
        }
        return user;  // 账号密码都正确
    }


}
